Digital signal compression using a coder/decoder (codec) allows streaming media, such as audio or video signals to be transmitted over the Internet or stored on CDs. A number of different standards of digital video compression have emerged, including H.261, H.263; DV; MPEG-1, MPEG-2, MPEG-4, VC1; and AVC (H.264). These standards, as well as other video compression technologies, seek to efficiently represent a video frame picture by eliminating the spatial and temporal redundancies in the picture and among successive pictures. Through the use of such compression standards, video contents can be carried in highly compressed video bit streams, and thus efficiently stored in disks or transmitted over networks.
Motion estimation (ME) is the most computationally intensive process of video encoding. It involves determining a motion vector (e.g., spatial difference) between a current section of a video frame and a reference section of either the same video frame picture or another video frame picture. These motion vectors are then used in the process of encoding the video stream or decoding the video stream. The motion estimation process allows for sections of a given video picture to be encoded with only a reference to a similar section, either in the current video picture or a prior video picture, and a motion vector describing the spatial transformation of the current section from a reference section. This thereby eliminates the need to encode entire sections when prior sections depicting very similar imagery have already been encoded. The H.264 standard allows seven different block sizes or sections in dividing a given video frame picture (16×16, 16×8, 8×16, 8×8, 8×4, 4×8, and 4×4), which makes the variable block size motion estimation a bottleneck in the encoding process.
It is within this context that embodiments of the current invention arise.